//思路：反转链表

import java.util.List;

public class Solution {
    public static void main(String[] args) {
        ListNode l5=new ListNode(5,null);
        ListNode l4=new ListNode(4,l5);
        ListNode l3=new ListNode(3,l4);
        ListNode l2=new ListNode(2,l3);
        ListNode l1=new ListNode(1,l2);
        l1=reverseList(l1);

    }
    public static ListNode reverseList(ListNode head) {
            if(head==null){
                return null;
            }
            ListNode p=head.next;
            head.next=null;
            while(p!=null){
                if (p.next!=null) {
                    ListNode q=p.next;
                    p.next=head;
                    head=p;
                    p=q;
                    q=p.next;
                }else{
                    p.next=head.next;
                    head=p;
                    break;
                }
            }
            return head;
    }
}


 class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}








